#需求一：以做饭为例子，假设需要５个步骤，买菜，洗菜，切菜，炒菜，放调料

#以前的顺序编程方法（非面向对象），还能接受
print("实现了买菜的功能")
print("实现了洗菜的功能")
print("实现了切菜的功能")
print("实现了炒菜的功能")
print("实现了放调料的功能")

#需求二：做两次饭，相同的代码需要复制两次，非常冗余
print("实现了买菜的功能")
print("实现了洗菜的功能")
print("实现了切菜的功能")
print("实现了炒菜的功能")
print("实现了放调料的功能")

print("实现了买菜的功能")
print("实现了洗菜的功能")
print("实现了切菜的功能")
print("实现了炒菜的功能")
print("实现了放调料的功能")

#需求三：张三要做胡萝卜，李四要做西红柿，需要大批量的替换，非常不方便
print("张三实现了买胡萝卜的功能")
print("张三实现了洗胡萝卜的功能")
print("张三实现了切胡萝卜的功能")
print("张三实现了炒胡萝卜的功能")
print("张三实现了放调料的功能")

print("李四实现了买西红柿的功能")
print("李四实现了洗西红柿的功能")
print("李四实现了切西红柿的功能")
print("李四实现了炒西红柿的功能")
print("李四实现了放调料的功能")

#需求四：做饭的步骤中多加了一项装盘，则以前所有用到做饭的这个功能，都得改代码，增加装盘的功能，很不方便
print("实现了买菜的功能")
print("实现了洗菜的功能")
print("实现了切菜的功能")
print("实现了炒菜的功能")
print("实现了放调料的功能")
print("实现了装盘的功能")

#需求五，做饭这个功能如果要是被其他模块引用，还得重新再把上面这些代码都写一遍？直接疯了1
#面向过程的编程方式，将一个个功能分解称为一个个小步骤，符合人类的思维，编写起来相对简单
#痛点：代码存在大量冗余，不好扩展（增加或者删除功能），灵活性差（不同人买不同菜），不好被其他模块引用，可读性差，修改麻烦，复用性极低
#思路：有没有办法解决以上痛点和问题，面向对象能够解决以上所有问题，非常神奇

